package com.lcx.plugin.service;

import com.lcx.plugin.dto.ExcelDbFiledDTO;

import java.util.List;

/**
 * 处理sql的接口
 *
 * @author daxiong
 * @date 2023/6/21 上午11:05
 */
public interface SqlHandleService {

    /**
     * 根据excel字段生成sql语句
     *
     * @param objList   excel字段集合
     * @param tableName 表名
     * @param tableNote 表注释
     * @return java.lang.String
     * @author daxiong
     * @date 2023/6/21 下午2:29
     */
    String generateSql(List<ExcelDbFiledDTO> objList, String tableName, String tableNote);

    /**
     * 数据库的类型
     *
     * @return java.lang.String
     * @author daxiong
     * @date 2023/6/21 上午11:09
     */
    String getDbType();

    /**
     * 生成索引的sql
     *
     * @param objList
     * @param sb
     * @return void
     * @author daxiong
     * @date 2023/6/21 上午11:08
     */
    void indexSql(List<ExcelDbFiledDTO> objList, StringBuilder sb);

    /**
     * 生成字段的sql
     *
     * @param objList
     * @param sb
     * @author daxiong
     * @date 2023/6/16 上午8:39
     */
    void columnSql(List<ExcelDbFiledDTO> objList, StringBuilder sb);

    /**
     * 解析字段类型
     *
     * @param excelDbFiledDTO
     * @param sb
     * @return void
     * @author daxiong
     * @date 2023/6/21 上午11:08
     */
    void analysisType(ExcelDbFiledDTO excelDbFiledDTO, StringBuilder sb);
}
